#pragma once
#include "TypeDefs.h"
class ICamera
{
public:
	virtual ~ICamera(void) {};
	virtual void SetOrientation(vector3 &rot) = 0;
	virtual void SetPosition(vector3 &pos) = 0;
	virtual vector3 GetOrientation() const = 0;
	virtual vector3 GetPosition() const = 0;
	virtual matrix GetProjection() const = 0;
	virtual matrix GetViewMatrix() const = 0;
	virtual matrix GetViewProjectionMatrix() const = 0;
	virtual matrix GetBillboardMatrix() const = 0;
	virtual vector3 MoveFacing(const vector3 &movement) = 0;
	virtual vector3 GetDirection() const = 0;
	virtual const frustum &GetCullingFrustum() const = 0;
};